// @File  : router.go
// @Author: JunLong.Liao&此处不应有BUG!
// @Date  : 2021/5/21
// @slogan: 又是不想写代码的一天，神兽保佑，代码无BUG！
//         ┏┓      ┏┓
//        ┏┛┻━━━━━━┛┻┓
//        ┃     ღ    ┃
//        ┃  ┳┛   ┗┳ ┃
//        ┃     ┻    ┃
//        ┗━┓      ┏━┛
//          ┃      ┗━━━┓
//          ┃ 神兽咆哮!  ┣┓
//          ┃         ┏┛
//          ┗┓┓┏━━━┳┓┏┛
//           ┃┫┫   ┃┫┫
//           ┗┻┛   ┗┻┛

package router

import (
	"courseware/apis/user"
	"courseware/apis/websoket2"
	"courseware/util/middleware"
	"github.com/gin-gonic/gin"
	"net/http"
)

func InitRouter() *gin.Engine {
	router := gin.Default()
	// 设置静态文件组
	static := router.Group("/static/")
	static.Use()
	{
		// 设置静态文件访问目录
		static.StaticFS("/", http.Dir("./view"))
	}
	userGroup := router.Group("/user")
	userGroup.POST("/login", user.Login)
	userGroup.POST("/register", user.Register)
	userGroup.GET("/list", user.UserList)
	userGroup.GET("/redis", user.RedisTest)
	userGroup.GET("/rabbitMQ", user.RabbitMQ)

	// go websocket.WebsocketManager.Start()
	// userGroup.GET("/connect", websocket.WebsocketManager.WsClient)

	go websoket2.WebSocketManager.Start()
	userGroup.GET("/socket_connect", websoket2.WebSocketManager.WsConnect)

	userGroup.Use(middleware.JWTAuth())
	{
		userGroup.GET("/test", user.Test)
		userGroup.PUT("/update", user.UpdateUser)
		userGroup.DELETE("/delete", user.DeleteUser)
	}

	return router
}
